﻿// 模拟 · 例3-机器翻译.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
链接：https://ac.nowcoder.com/acm/contest/20960/1003
来源：牛客网

翻译软件由临时记忆和外存记忆两部分构成。临时记忆有限，至多储存m 个单词；\
外存记忆无限，可以储存任意多的单词。
对于新出现的单词，储存规则如下：

 
∙若其存在于临时记忆中，则直接使用，不进行任何操作；
∙若其不存在于临时记忆中，那么记录一次读取，并加入临时记忆；特别的，若此时临时记忆中的单词为m 个（储存已满），
则将临时记忆中最早的那个单词释放到外存记忆，腾出空间给新单词；
现在，对于给定的由n 个单词构成的英语文章，一共会记录多少次单词的读取？
输入描述:
第一行输入两个整数
m,n(1≦m≦100; 1≦n≦103) 代表临时记忆容量、单词数量。
第二行输入n 个整数
𝑎1,𝑎2,   ,𝑎𝑛(0≦𝑎𝑖≦103)，代表一个英文单词。文章中的两个单词是同一个单词，当且仅当它们对应的整数相同。

输出描述:
在一行上输出一个整数，代表翻译软件的读取次数。


示例1
输入
复制
2 7
1 1 4 5 1 4 1
输出
复制
5


说明
在这个样例中，记临时记忆为T ，翻译软件储存的过程如下：
 
∙对于第一个单词1 ，记录一次读取，由于此时临时记忆未满，直接存入；
此时T={1} ；

 
∙对于第二个单词1 ，临时记忆中已存在，不进行任何操作；
 
∙对于第三个单词4 ，记录一次读取，由于此时临时记忆未满，直接存入，此时T={1,4} ；
 
∙对于第四个单词5 ，记录一次读取，由于此时临时记忆已满，将最早存入的单词1 释放，将新单词5 存入临时记忆，此时
T={4,5} ；

 
∙对于第五个单词1 ，记录一次读取；此时T={5,1} ；
 
∙对于第六个单词4 ，记录一次读取；此时T={1,4} ；

 
∙对于第七个单词1 ，临时记忆中已存在，不进行任何操作；
因此，一共会记录5 次单词的读取。


示例2
输入
复制
100 3
0 0 0
输出
复制
1
*/



#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

 